package com.winkyle.woodenfish.proxy;

import com.winkyle.woodenfish.mvpview.BaseMvpView;
import com.winkyle.woodenfish.factory.presenterfactory.PresenterMvpFactory;
import com.winkyle.woodenfish.presenter.BaseMvpPresenter;

/**
 * @author winkyle
 * @date 2018/06/13
 * @description 代理接口
 */
public interface PresenterProxy<V extends BaseMvpView,P extends BaseMvpPresenter<V>> {
    /**
     * @description 设置创建Presenter的工厂
     * @param presenterFactory PresenterFactory类型
     * @return
     */
    void setPresenterFactory(PresenterMvpFactory<V,P> presenterFactory);
    /**
     * @description 获取Presenter的工厂类
     * @return 返回PresenterMvpFactory类型
     */
    PresenterMvpFactory<V,P> getPresenterFactory();
    /**
     * @description 获取创建的Presenter
     * @return 指定类型的Presenter
     */
    P getMvpPresenter();
}
